﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Projeto.Classes.Conexao;
using Projeto.Classes.Objeto;


namespace Projeto.Formularios
{
    public partial class frmRegistroResponsavel : Form
    {
        public frmRegistroResponsavel()
        {
            InitializeComponent();
        }
        private bool IsUpdate = false;
        private Classes.Objeto.Responsavel resp = new Classes.Objeto.Responsavel();

        private void loadObject()
        {
            resp.ds_nome = txtNome.Text;

            if (rbPF.Checked)
            {
                resp.ic_tipo_pessoa = 1;
            }
            else if (rbPJ.Checked)
            {
                resp.ic_tipo_pessoa = 2;
            }

            string codigo = mtxtCodigo.Text;
            codigo = codigo.Replace(".", "");
            codigo = codigo.Replace("/", "");
            codigo = codigo.Replace("-", "");

            resp.cd_cnpj_cpf = codigo;

            resp.ds_endereco = txtEndereco.Text;

            string telefone = mtxtTelefone.Text;

            telefone = telefone.Replace("(", "");
            telefone = telefone.Replace(")", "");
            telefone = telefone.Replace("-", "");
            telefone = telefone.Replace(" ", "");

            resp.ds_telefone = telefone;

            resp.ds_email = txtEmail.Text;
        }

        public void loadUpdate(Classes.Objeto.Responsavel value)
        {
            this.IsUpdate = true;
            this.resp = value;
            this.txtNome.Text = value.ds_nome;
            switch (value.ic_tipo_pessoa)
            {
                case 1:
                    this.rbPF.Checked = true;
                    this.rbPJ.Checked = false;
                    break;
                case 2:
                    this.rbPJ.Checked = true;
                    this.rbPF.Checked = false;
                    break;
            }
            this.mtxtCodigo.Text = value.cd_cnpj_cpf;
            this.txtEndereco.Text = value.ds_endereco;
            this.mtxtTelefone.Text = value.ds_telefone;
            this.txtEmail.Text = value.ds_email;
        }

        private void clearForm()
        {
            txtNome.Clear();
            txtEndereco.Clear();
            txtEmail.Clear();
            rbPF.Checked = true;
            rbPJ.Checked = false;
            mtxtCodigo.Text = "";
            mtxtTelefone.Text = "";
        }

        private void rbPF_CheckedChanged(object sender, EventArgs e)
        {
            if (rbPF.Checked)
            {
                rbPJ.Checked = false;
                mtxtCodigo.Enabled = true;
                mtxtCodigo.Text = "";
                mtxtCodigo.Mask = "000.000.000-00";
            }
        }

        private void rbPJ_CheckedChanged(object sender, EventArgs e)
        {
            if (rbPJ.Checked)
            {
                rbPF.Checked = false;
                mtxtCodigo.Enabled = true;
                mtxtCodigo.Text = "";
                mtxtCodigo.Mask = "00.000.000/0000-00";
            }
        }

        private void btnRegistrar_Click(object sender, EventArgs e)
        {

            string codigo = mtxtCodigo.Text;
            codigo = codigo.Replace(".", "");
            codigo = codigo.Replace("-", "");
            codigo = codigo.Replace("/", "");
            codigo = codigo.Replace(" ", "");
            if (String.IsNullOrEmpty(codigo))
            {
                MessageBox.Show("O Responsável precisa ter um CPF ou CPNJ!", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            Classes.Conexao.Responsavel con = new Classes.Conexao.Responsavel();

            if (IsUpdate)
            {
                loadObject();

                if (con.UpdateResponsavel(resp))
                {
                    MessageBox.Show("Alteração efetuada com sucesso.");
                }
                else
                {
                    MessageBox.Show("Erro. Contacte o suporte.");
                }
                this.Close();
            }
            else
            {
                loadObject();

                if (con.InsertResponsavel(resp))
                {
                    MessageBox.Show("Registro efetuado com sucesso.");
                }
                else
                {
                    MessageBox.Show("Erro. Contacte o suporte.");
                }

                clearForm();
                txtNome.Focus();
            }
        }

        private void frmRegistroResponsavel_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (IsUpdate)
            {
                IsUpdate = false;
                //PRECISA FAZER O FORM DE BUSCA
                frmBuscaResponsavel frmBResp = new frmBuscaResponsavel();
                frmBResp.searchProduto();
                frmBResp.Show();
            }
        }

        private void txtNome_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(!char.IsLetter(e.KeyChar))
            {
                if (e.KeyChar != (char)8 && e.KeyChar != (char)9 && e.KeyChar != (char)32)
                {
                    e.KeyChar = (char)0;
                }
            }
        }


    }
}
